﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BL;
using System.Data;
using CrystalDecisions.CrystalReports.Engine;

namespace UI.Secretaria
{
    public partial class frmConsultaNomina : System.Web.UI.Page
    {

        private Reporte rptreporte = new Reporte();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {


                llenaCombos();
            }
        }

        void llenaCombos()
        {
            DataTable dato = new DataTable();
            Alumno_BL obj = new Alumno_BL();

            dato = obj.DATA_ESPECIALIDAD_ListaEspecialidades();
            ddlEspecialidad.DataSource = dato;
            ddlEspecialidad.DataTextField = "desesp";
            ddlEspecialidad.DataValueField = "cod_Espec";
            ddlEspecialidad.DataBind();
            ddlEspecialidad.Items.Insert(0, "--Selecciones--");


            dato.Clear();
            dato = obj.DATA_PERIODO_listaxSemestre("TODOS");
            ddlSemestre.DataSource = dato;
            ddlSemestre.DataTextField = "semestre";
            ddlSemestre.DataValueField = "semestre";
            ddlSemestre.DataBind();
            ddlSemestre.Items.Insert(0, "--Selecciones--");

        }

        protected void Button1_Click(object sender, EventArgs e)
        {

            // se valida que el usuario selecciones un semestre y especialidad

            if (ddlSemestre.SelectedIndex == 0)
            {
                lblMensaje.Text = "Selecciones un Semestre";
            }

            if (ddlEspecialidad.SelectedIndex == 0)
            {
                lblMensaje.Text = "Seleccione una Especialidad";
            }

            Secretaria_BL OBJ = new Secretaria_BL();
            DataTable dato = new DataTable();
            dato = OBJ.DATA_MATRIC1_ListaNominas(ddlSemestre.SelectedValue, ddlCiclo.SelectedValue, ddlEspecialidad.SelectedValue);
            grvNomina.DataSource = dato;
            grvNomina.DataBind();

            CuentaItemsGrilla(dato);
            
        }


        public void CuentaItemsGrilla(DataTable dato)
        {
            if (dato.Rows.Count == 0)
            {
                grvNomina.Caption = "No se encontró coincidencias";
            }
            else if (dato.Rows.Count == 1)
            {
                grvNomina.Caption = "Total de items - 1 registro encontrado";
            }
            else
            {
                grvNomina.Caption = "Total de items - " + dato.Rows.Count + " registros encontrados";
            }
        }

        void ExportaPDF(DataTable dato)
        {

            //dato.TableName = "x";

            //DataSet dsNomina = new DataSet();
            //dsNomina.Tables.Add(dato);

            //rptreporte.ResourceName = "nomina.rpt";

            //rptreporte.SetDataSource(dsNomina);
            //rptreporte.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "NOMINA");


        //    nomina informe = new nomina();
        //    informe.DataDefinition.FormulaFields("semes").Text = "'" +ddlSemestre.SelectedValue+ "'";
        //informe.DataDefinition.FormulaFields("confeme").Text = "'" "'"
        //informe.DataDefinition.FormulaFields("contmascu").Text = "'" & contadormasculinos.ToString & "'"
        //informe.DataDefinition.FormulaFields("espe").Text = "'"+ddlEspecialidad.SelectedValue+ "'"
        //informe.DataDefinition.FormulaFields("esc").Text = "'" & valorescuela.ToString & "'"
        //informe.DataDefinition.FormulaFields("cic").Text = "'" & romano.ToString & "'"
        //informe.DataDefinition.FormulaFields("mensaje").Text = "'" & mesa2.ToString & "'"

        //    DataSet dsNomina = new DataSet();
        //    dato.TableName = "x";
        //    dsNomina.Tables.Add(dato);

        //    var reporte = new ReportDocument();
        //    reporte.Load(Server.MapPath("nomina.rpt"));
        //    reporte.SetDataSource(dsNomina);
        //    crViewer.ReportSource = reporte;


        }

        protected void grvNomina_SelectedIndexChanged(object sender, EventArgs e)
        {
            Session.Remove("NOMINASEMESTRE");
            Session.Remove("NOMINAESPEC");
            Session.Remove("NOMINACICLO");

            Session["NOMINASEMESTRE"] = ddlSemestre.SelectedValue;
            Session["NOMINAESPEC"] = ddlEspecialidad.SelectedValue;
            Session["NOMINACICLO"] = grvNomina.SelectedRow.Cells[2].Text;
            Response.Redirect("frmNomina.aspx");
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {

            // se busca el semestre actual en la tabla data_Periodo y se extrae el semestre vigente
            Session.Remove("SemestreNomina");
            Session["SemestreNomina"] = ddlSemestre.SelectedValue;

            Response.Redirect("frmNominaNuevo.aspx");
            




        }

        protected void grvNomina_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {


            

        }

        protected void grvNomina_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                try
                {
                    Secretaria_BL obj = new Secretaria_BL();
                    GridViewRow row = (GridViewRow)(e.CommandSource as LinkButton).Parent.Parent;
                    String semestre = row.Cells[0].Text;
                    String especialidad = row.Cells[1].Text;
                    String ciclo = row.Cells[2].Text;

                }
                catch (Exception ex)
                {

                    lblMensaje.Text = "Ocurrio un error al confirmar :" + ex.Message;
                }
               
              

            }
        }



    }
    
}